package org.mdrtwell.designpattern.specification;

public interface ISpecification<T> {

	boolean isStatisfiedBy(T candidate);

	ISpecification<T> and(ISpecification<T> other);

	ISpecification<T> or(ISpecification<T> other);

	ISpecification<T> not();

}
